package com.csun.cmny.provider.service;

import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.device.csun.sleep.entity.CsunSleepData;
import com.csun.cmny.provider.model.domain.DmcCsunSleepData;
import com.csun.cmny.provider.model.dto.sleep.BedOldmanSleepReqDto;
import com.csun.cmny.provider.model.vo.CsunSleepDataReqVo;
import com.csun.cmny.provider.model.vo.DmcDeviceAlert;
import com.csun.cmny.provider.vo.DmcCsunSleepDataVo;
import com.csun.cmny.provider.model.vo.csunsleep.DmcCsunSleepVo;
import com.csun.cmny.provider.vo.RoomSleepInfo;
import com.csun.cmny.provider.vo.SleepDataVo;
import com.csun.cmny.provider.model.vo.csunsleep.CsunSleepRealDataVo;
import com.csun.cmny.provider.model.vo.life.LifeSleepDataIndex;

import java.util.ArrayList;
import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-02-15 10:34
 * @Description: the interface dmc csun sleep data service
 */
public interface DmcCsunSleepDataService extends IService<DmcCsunSleepData> {

    /**
     * query csun sleep real data by device id
     *
     * @param deviceId  device id
     *
     * @return  the csun sleep real data vo
     */
    CsunSleepRealDataVo queryCsunSleepRealDataByDeviceId(Long deviceId);

    /**
     * query csun sleep data by bed oldman list
     *
     * @param bedOldmanSleepReqDtoList  bed oldman sleep req dto list
     *
     * @return  the list
     */
    List<CsunSleepDataReqVo> queryCsunSleepDataByBedOldmanList(List<BedOldmanSleepReqDto> bedOldmanSleepReqDtoList);

    /**
     * 查询所有绑定了的日创床垫数据
     *
     * @return  the list.
     */
    List<CsunSleepData> queryCsunSleepDataBindList();

   List<LifeSleepDataIndex>  selectDataByRoomId(Long roomId);
    //查询床垫数据
    List<LifeSleepDataIndex> querySleepInfoByRoomId(ArrayList<Long> ids);
    //查询报警信息
    List<DmcDeviceAlert> querySleepAlertInfo(ArrayList<Long> ids, Integer isHandle);
    //查询床垫状态
    List<SleepDataVo> queryInBed(List<Long> deviceIds);
    //查询绑定了床垫的老人
    List<RoomSleepInfo> querySleepBind(ArrayList<Long> ids);
    //查询床垫时间段是否在床
    List<CsunSleepDataReqVo> querySleepInbed(ArrayList<Long> ids, String time);
    //查询床垫报警信息
    List<DmcDeviceAlert> queryAllSleepAlert(ArrayList<Long> ids);
    //查询床垫状态
    List<DmcCsunSleepDataVo> querySleepDateById(List<DmcCsunSleepVo> dmcCsunSleepVos);
}
